home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
TURB_VIS
/
MISC
/
EXAMPLE.PAS
next >
Wrap
Pascal/Delphi Source File
|
1990-12-17
|
5KB
|
161 lines
Program Example;
Uses Crt,App, Objects, Views, Dialogs, Drivers, Misc;
Type
PMyApp = ^TMyApp ;
TMyApp = Object( TApplication )
Constructor Init;
End;
Var
MyApp : TMyApp ;
Dialog : PLinked_Dialog;
Screen_Array : Array[1..70] of TNum_Box;
Procedure Build_Links;
Var P : TPoint ;
X,Y : Integer ;
N : Integer ;
Begin
For N := 1 to 50 do
Begin
P.Y := ( N - 1 ) DIV 10 + 8 ;
P.X := ( N - 1 ) MOD 10 * 4 + 20 ;
Screen_Array[N].Init( P , 3 , 0 , FALSE , N );
Screen_Array[N].Update_Value;
End;
For N := 1 to 8 do
Begin
P.Y := ( N - 1 ) Div 3 * 2 + 8 ;
P.X := ( N - 1 ) Mod 3 * 4 + 60 ;
If ( N > 6 ) then
P.X := P.X + 4 ;
Screen_Array[N+50].Init( P , 3 , 0 , FALSE , N+50 );
Screen_Array[N+50].Update_Value;
End;
P.Y := 6 ;
(* Initialize 5 floating point boxes *)
For N := 1 to 5 do
Begin
P.X := ( N * 12 ) ;
Screen_Array[N+58].Init( P , 4 , 2 , True , N+58 );
End;
(* Insert all boxes before setting links! *)
For N := 1 to 63 do
Dialog^.Insert( @Screen_Array[N] );
For N := 1 to 50 do
Begin
if ( N MOD 10 ) <> 1 then
Dialog^.Set_Link(@Screen_array[N],DLink_Left ,@Screen_array[N-1]);
if ( N MOD 10 ) <> 0 then
Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[N+1]);
if ( N > 10 ) then
Dialog^.Set_Link(@Screen_array[N],DLink_Up ,@Screen_array[N-10])
else
Dialog^.Set_Link(@Screen_array[N],DLink_Up ,@Screen_array[59]);
if ( N <41 ) then
Dialog^.Set_Link(@Screen_array[N],DLink_Down ,@Screen_array[N+10]);
if ( N=10 ) or ( N=20 ) then
Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[51]);
if ( N=30 ) or ( N=40 ) then
Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[54]);
End;
Dialog^.Set_Link(@Screen_array[50],DLink_Right,@Screen_array[57]);
Dialog^.Set_Link(@Screen_array[51],DLink_Left ,@Screen_array[10]);
Dialog^.Set_Link(@Screen_array[51],DLink_Right,@Screen_array[52]);
Dialog^.Set_Link(@Screen_array[51],DLink_Down ,@Screen_array[54]);
Dialog^.Set_Link(@Screen_array[52],DLink_Left ,@Screen_array[51]);
Dialog^.Set_Link(@Screen_array[52],DLink_Right,@Screen_array[53]);
Dialog^.Set_Link(@Screen_array[52],DLink_Down ,@Screen_array[55]);
Dialog^.Set_Link(@Screen_array[53],DLink_Left ,@Screen_array[52]);
Dialog^.Set_Link(@Screen_array[53],DLink_Down ,@Screen_array[56]);
Dialog^.Set_Link(@Screen_array[54],DLink_Left ,@Screen_array[30]);
Dialog^.Set_Link(@Screen_array[54],DLink_Right,@Screen_array[55]);
Dialog^.Set_Link(@Screen_array[54],DLink_Down ,@Screen_array[57]);
Dialog^.Set_Link(@Screen_array[54],DLink_Up ,@Screen_array[51]);
Dialog^.Set_Link(@Screen_array[55],DLink_Left ,@Screen_array[54]);
Dialog^.Set_Link(@Screen_array[55],DLink_Right,@Screen_array[56]);
Dialog^.Set_Link(@Screen_array[55],DLink_Down ,@Screen_array[57]);
Dialog^.Set_Link(@Screen_array[55],DLink_Up ,@Screen_array[52]);
Dialog^.Set_Link(@Screen_array[56],DLink_Left ,@Screen_array[55]);
Dialog^.Set_Link(@Screen_array[56],DLink_Down ,@Screen_array[58]);
Dialog^.Set_Link(@Screen_array[56],DLink_Up ,@Screen_array[53]);
Dialog^.Set_Link(@Screen_array[57],DLink_Left ,@Screen_array[50]);
Dialog^.Set_Link(@Screen_array[57],DLink_Right,@Screen_array[58]);
Dialog^.Set_Link(@Screen_array[57],DLink_Up ,@Screen_array[55]);
Dialog^.Set_Link(@Screen_array[58],DLink_Left ,@Screen_array[57]);
Dialog^.Set_Link(@Screen_array[58],DLink_Up ,@Screen_array[56]);
For N := 59 to 63 do
Begin
if ( N > 59 ) then
Dialog^.Set_Link(@Screen_array[N],DLink_Left ,@Screen_array[N-1]);
if ( N < 63 ) then
Dialog^.Set_Link(@Screen_array[N],DLink_Right,@Screen_array[N+1]);
Dialog^.Set_Link(@Screen_array[N],DLink_Down,@Screen_array[1]);
End;
End;
Procedure Do_Dialog;
Var R : TRect ;
TP : TPoint ;
N : Integer ;
Button : PButton ;
Begin
R.Assign( 0 , 10 , 80 , 24 );
Dialog := New( PLinked_Dialog , Init( R , 'Linked Dialog Example' ));
Dialog^.SetState(sfShadow,False );
Build_Links;
R.Assign( 5 , 8 , 15 , 10 );
Button := New(PPushButton,Init(R,'~P~ush',cmOk,bfDefault));
Dialog^.Insert( Button );
R.Assign( 5 , 11 , 15 , 13 );
Button := New(PPushButton,Init(R,'~E~xit',cmQuit,bfDefault));
Dialog^.Insert( Button );
Dialog^.Set_Link(Button,DLink_Right,@Screen_array[1]);
MyApp.Insert( Dialog );
End;
Constructor TMyApp.Init;
Begin
TApplication.Init ;
Do_Dialog;
End;
Begin
ClrScr;
MyApp.Init ;
MyApp.Run ;
MyApp.Done ;
End.